package inet.app.controller.parser;
import inet.app.model.object.KqGiai_Item;
import inet.app.model.util.DateProc;
import inet.app.model.util.StringTool;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Hashtable;
import java.util.Iterator;

public class Parser_Push_MB {
	private String separator_end="\\|\\|\r\n", separator="\\|";
	private String[] data, item_first,strGiai;
	private String NAME = "XSSYNC_RESP",date_current;
	private String name,codenew,status,code0 ="XSTD";
	private String dacbiet0= ".....",giai10=".....",giai20 = ".....-.....",giai30=".....-.....-.....-.....-.....-.....",giai40= ".....-.....-.....-.....";
	private String giai50 =".....-.....-.....-.....-.....-.....",giai60= ".....-.....-.....",giai70= ".....-.....-.....-.....",giai80=".....";
	private String date0 = "12/04/2013";
	private int i = 0;
	private KqGiai_Item item;
	private String last_update, code,date,dacbiet, giai1, giai2,giai3,giai4,giai5,giai6,giai7,giai8;
	private ArrayList<KqGiai_Item> list = new ArrayList<KqGiai_Item>();
	 
	public Parser_Push_MB() {
	}
	public ArrayList<KqGiai_Item> getList(String json) {
		date_current = DateProc.Timestamp2DDMMYYYY(DateProc.createTimestamp());
		
		data = json.split(separator_end);
		item_first = data[0].split(separator);
		name = item_first[0];
		status = item_first[1];
		date = item_first[4];
		code= item_first[3];
		System.out.println("code ===>> " + code);
//		if (status.equals("0") && name.equals(NAME)&&date.contains(date_current)&&code.equals("XSTD")) {
		if (status.equals("0") && name.equals(NAME)&&code.equals("XSTD")) {
			System.out.println("RUN  PARSER PUSH");
			for (i = 0; i < data.length; i++) {
				strGiai = data[i].split("\\|");
				last_update= strGiai[2]; 
				code = strGiai[3];
				date = strGiai[4].split(" ")[0];
				if(date.length()<4) date= date_current;
				
				for (int j = 5; j < strGiai.length; j++) {
					if(strGiai[j].substring(0,1).equals("0")){
						if(!strGiai[j].equals("0:"))
							dacbiet = strGiai[j].split(":")[1];
						else
							dacbiet = dacbiet0;
					}else if(strGiai[j].substring(0,1).equals("1")){
						if(!strGiai[j].equals("1:"))
							giai1 = strGiai[j].split(":")[1];
						else 
							giai1 = giai10;
					}else if(strGiai[j].substring(0,1).equals("2")){
						if(!strGiai[j].equals("2:"))
							giai2 = strGiai[j].split(":")[1]+"-.....";
						else
							giai2=giai20;
					}else if(strGiai[j].substring(0,1).equals("3")){
						if(!strGiai[j].equals("3:"))
							giai3 = strGiai[j].split(":")[1]+"-.....-.....-.....-.....-.....";
						else 
							giai3= giai30;
					}else if(strGiai[j].substring(0,1).equals("4")){
						if(!strGiai[j].equals("4:"))
							giai4 = strGiai[j].split(":")[1]+"-.....-.....-.....";
						else
							giai4=giai40;
					}else if(strGiai[j].substring(0,1).equals("5")){
						if(!strGiai[j].equals("5:"))
							giai5 = strGiai[j].split(":")[1]+"-.....-.....-.....-.....-.....";
						else 
							giai5= giai50;
					}else if(strGiai[j].substring(0,1).equals("6")){
						if(!strGiai[j].equals("6:"))
							giai6 = strGiai[j].split(":")[1]+"-.....-.....";
						else 
							giai6= giai60;
					}else if(strGiai[j].substring(0,1).equals("7")){
						if(!strGiai[j].equals("7:"))
							giai7 = strGiai[j].split(":")[1]+"-.....-.....-.....";
						else 
							giai7=giai70;
					}else if(strGiai[j].substring(0,1).equals("8")){
						if(!strGiai[j].equals("8:"))
							giai8 = strGiai[j].split(":")[1];
						else 
							giai8= giai80;
					}
				}
				System.out.println("DATE PARSER " + date);
				item = new KqGiai_Item(code,code, date, dacbiet, giai1, giai2, giai3, giai4, giai5, giai6, giai7,giai8);
				list.add(item);
			}
		}else{
			System.out.println("RUN ELSE  PARSER");
			return null;
//				item = new KqGiai_Item(code0,code0, date0, dacbiet0, giai10, giai20, giai30, giai40, giai50, giai60, giai70,giai80);
//				list.add(item);
		}
		return list;
	}
	public ArrayList<KqGiai_Item> getList_Cau(String json) {
		date_current = DateProc.Timestamp2DDMMYYYY(DateProc.createTimestamp());
		
		data = json.split(separator_end);
		item_first = data[0].split(separator);
		name = item_first[0];
		status = item_first[1];
		date = item_first[2];
		code= item_first[3];
		
		if (status.equals("0") && name.equals("XS_CAU_RESP")) {
			System.out.println("RUN  PARSER PUSH");
			for (i = 0; i < data.length; i++) {
				strGiai = data[i].split("\\|");
				last_update= strGiai[2]; 
				code = strGiai[3];
				date = strGiai[4].split(" ")[0];
				
				for (int j = 5; j < strGiai.length; j++) {
					if(strGiai[j].substring(0,1).equals("0")){
						if(!strGiai[j].equals("0:"))
							dacbiet = strGiai[j].split(":")[1];
						else
							dacbiet = dacbiet0;
					}else if(strGiai[j].substring(0,1).equals("1")){
						if(!strGiai[j].equals("1:"))
							giai1 = strGiai[j].split(":")[1];
						else 
							giai1 = giai10;
					}else if(strGiai[j].substring(0,1).equals("2")){
						if(!strGiai[j].equals("2:"))
							giai2 = strGiai[j].split(":")[1];
						else
							giai2=giai20;
					}else if(strGiai[j].substring(0,1).equals("3")){
						if(!strGiai[j].equals("3:"))
							giai3 = strGiai[j].split(":")[1];
						else 
							giai3= giai30;
					}else if(strGiai[j].substring(0,1).equals("4")){
						if(!strGiai[j].equals("4:"))
							giai4 = strGiai[j].split(":")[1];
						else
							giai4=giai40;
					}else if(strGiai[j].substring(0,1).equals("5")){
						if(!strGiai[j].equals("5:"))
							giai5 = strGiai[j].split(":")[1];
						else 
							giai5= giai50;
					}else if(strGiai[j].substring(0,1).equals("6")){
						if(!strGiai[j].equals("6:"))
							giai6 = strGiai[j].split(":")[1];
						else 
							giai6= giai60;
					}else if(strGiai[j].substring(0,1).equals("7")){
						if(!strGiai[j].equals("7:"))
							giai7 = strGiai[j].split(":")[1];
						else 
							giai7=giai70;
					}else if(strGiai[j].substring(0,1).equals("8")){
						if(!strGiai[j].equals("8:"))
							giai8 = strGiai[j].split(":")[1];
						else 
							giai8= giai80;
					}
				}
				item = new KqGiai_Item(code,code, date, dacbiet, giai1, giai2, giai3, giai4, giai5, giai6, giai7,giai8);
				list.add(item);
			}
		}else{
			System.out.println("RUN ELSE  PARSER");
			return null;
		}
		return list;
	}
	public static Hashtable<Integer, String> getHashPrize(String strReceived){
		if(strReceived==null) return null;
		Hashtable<Integer, String> result = new Hashtable<Integer, String>();
		Collection<String> cTemp = StringTool.parseString(strReceived, "|");
		if(cTemp==null || cTemp.isEmpty()) return null;
		String str = "";
		String key;
		String value;
		for(Iterator<String> it=cTemp.iterator(); it.hasNext(); ){
			str = it.next();
			if(str.indexOf(":")>0){
				key = str.substring(0, str.indexOf(":"));
				value = str.substring(str.indexOf(":")+1);
				if(key==null || !StringTool.isNumberic(key) || value==null) continue;
				result.put(Integer.parseInt(key), value);
			}
		}
		return result;
	}
}
